這題要分別先記錄[字母出現頻率]和[頻率的次數],再逐漸刪減至沒出現過的頻率,即可得刪減次數。
class Solution {
public:
int minDeletions(string s) {
unordered_map<char, int> umap;
int del = 0;
unordered_set<int> frq;
for(char c : s){
umap[c]++;
}
int ans = 0;
for(auto &i : umap){
while(i.second > 0 && frq.find(i.second) != frq.end()){
i.second--;
ans++;
}
frq.insert(i.second);
}
return ans;
}
};